﻿/*!
*	云网无限
*	JavaScript Document
*  cncard.com
*/

// 循环操作数组中的对象
function $each(a, f) {
    for (var i = 0, j = a.length; i < j; i++) f.call(a[i], i, j);
}
// 去空格
function $trim(s, w) {
    if (!s) return;
    if (!!w) {
        if (w.toLowerCase() === 'left') {
            s = s.replace(/^\s*/, '');
        } else if (w.toLowerCase() === 'right') {
            s = s.replace(/\s*$/, '');
        }
    } else {
        s = s.replace(/^\s*(.*?)\s*$/, '$1');
    }
    return s;
}
// 注册页面显示提示信息
function $dir(o, c) {
    var dir = document.createElement('div');
    dir.className = 'dir';
    o.appendChild(dir);
    dir.innerHTML = '<div class="content">' + c + '</div><div class="jiantou"></div>';
    o.ifhas = 1;
}
// 删除页面的提示信息
function $redir(o) {
    var divs = o.getElementsByTagName('div');
    $each(divs, function (n) {
        if (this.className == 'dir') o.removeChild(divs[n]);
    });
    o.ifhas = 0;
}
// msg消息
function $msg(o, w, s) {
    cls = !!w ? 'green' : 'red';
    w = !!w ? 'right' : 'wrong';
    str = '<span class="img"><img src="../images/' + w + '.gif" /></span><span class="text ' + cls + '">' + s + '</span>';
    o.innerHTML = str;
}
// ajax函数
function $ajax(o) {
    if (!o || !o.url) return;
    var type = o.type || 'GET',
		async = o.async || true,
		responsetype = o.responsetype || 'text',
		url = o.url,
		data = o.data || false,
		getXHR = function () {
		    var xmlHttp = null;
		    try {// Firefox, Opera 8.0+, Safari
		        xmlHttp = new XMLHttpRequest();
		    } catch (e) {
		        try {// Internet Explorer
		            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		        } catch (e) {
		            try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { }
		        }
		    }
		    return xmlHttp;
		};
    var xhr = getXHR();
    if (!xhr) return;
    xhr.onreadystatechange = function () {
        if (xhr.readyState === 4) {
            if (xhr.status == 200) {
                if (responsetype.toLowerCase() === 'text') {
                    o.success(xhr.responseText);
                } else if (responsetype.toLowerCase() === 'json') {
                    var json = eval('(' + xhr.responseText + ')');
                    o.success(json);
                } else if (responsetype.toLowerCase() === 'javascript') {
                    try { eval(xhr.responseText); } catch (e) { }
                } else if (responsetype.toLowerCase() === 'xml') {
                    o.success(xhr.responseXML);
                }
            } else {
                if (!!o.fail) {
                    try { o.fail(xhr.status); } catch (e) { };
                }
            }
        }
    }
    //获取数据
    if (typeof data === 'object') {
        var arr = [];
        for (p in data) {
            arr.push(p + '=' + data[p]);
        }
        data = arr.join('&');
    } else {
        data = 'data=null';
    }
    //判断方式
    if (type === 'GET') {
        url = curl(url);
        if (!!data) { url += '&' + data; }
    } else {
        url = curl(url);
    }
    xhr.open(type, url, async);
    if (type === 'GET') {
        xhr.send(null);
    } else {
        xhr.setRequestHeader("content-length", data.length);
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xhr.send(data)
    }
    //转换url
    function curl(url) {
        if (url.indexOf('?') > -1) {
            url += '&' + 'ajaxmandomdata=' + (new Date().getTime().toString(36));
        } else {
            url += '?' + 'ajaxmandomdata=' + (new Date().getTime().toString(36));
        }
        return url;
    }
}
// 身份证验证
function checkCard2(cId) {
    var pattern;
    if (cId.length == 15) {
        pattern = /^\d{15}$/; //正则表达式,15位且全是数字
        if (pattern.exec(cId) == null) {
            return false;
        }
        if (!isdate2("19" + cId.substring(6, 8), cId.substring(8, 10), cId.substring(10, 12))) {
            return false;
        }
    }
    else if (cId.length == 18) {
        pattern = /^\d{17}(\d|x|X)$/; //正则表达式,18位且前17位全是数字，最后一位只能数字,x,X
        if (pattern.exec(cId) == null) {

            return false;
        }
        if (!isdate2(cId.substring(6, 10), cId.substring(10, 12), cId.substring(12, 14))) {

            return false;
        }
        var strJiaoYan = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];
        var intQuan = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1];
        var intTemp = 0;
        for (i = 0; i < cId.length - 1; i++)
            intTemp += cId.substring(i, i + 1) * intQuan[i];
        intTemp %= 11;
        if (cId.substring(cId.length - 1, cId.length).toUpperCase() != strJiaoYan[intTemp]) {
            return false;
        }
    }
    else {
        return false;
    }
    return true;
}
function isdate2(intYear, intMonth, intDay) {
    if (isNaN(intYear) || isNaN(intMonth) || isNaN(intDay)) return false;
    if (intMonth > 12 || intMonth < 1) return false;
    if (intDay < 1 || intDay > 31) return false;
    if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intDay > 30)) return false;
    if (intMonth == 2) {
        if (intDay > 29) return false;
        if ((((intYear % 100 == 0) && (intYear % 400 != 0)) || (intYear % 4 != 0)) && (intDay > 28)) return false;
    }
    return true;
}
var checkArr = [0, 0, 0, 0, 0, 0];//
onload = function () {
    var inputs = document.getElementById('content').getElementsByTagName('input'),
	dirMsg = [
	'请使用英文字母和数字填写会员用户名，最多16个字符，如smith。',
    '请输入中文名字。',
	'更安全的方法是用0～9、a～z大小写字母和符号混合使用。<br />密码的合法长度为4-14位。',
	'重新输入一遍密码，以确保密码无误。',
	'请务必正确填写，购物成功时我们会将订单发往此地址。',
	'最好填写手机电话，以便能够及时与您联系。',
    //	'请将右侧显示的红色字符填写到系统验证码的框中，看不清请点击图片更换字符。'
];
    $each(inputs, function (i, j) {
        if (i > 9) return;
        var parent = this.parentNode || this.parentElement,
			_self = this,
			info = parent.getElementsByTagName('div')[0];
        parent.style.zIndex = 10 - i; // 解决ie6 z-index的bug
        // 获取焦点
        if (i == 0) $dir(parent, dirMsg[i]);
        this.value = '';
        this.onfocus = function () {
            var ipt1 = inputs[0].parentNode || inputs[0].parentElement;
            if (ipt1.ifhas) $redir(ipt1);
            info.innerHTML = '';
            this.style.backgroundColor = '#F0F5FB';
            if (!parent.ifhas) $dir(parent, dirMsg[i]);
        }
        // 失去焦点
        this.onblur = function () {
            var _self = this,
				clval = $trim(_self.value);
            this.style.backgroundColor = '';
            $redir(parent);
            var reg = /^[u4E00-u9FA5]+$/
            //检验用户名
            if (i == 0) {
                if (!clval) {
                    $msg(info, 0, '请填写您的会员登录名。');
                    checkArr[i] = 0;
                    return;
                } else if (clval.length < 3 || clval.length > 16) {
                    $msg(info, 0, '会员登录名最少3个字符，最多16个字符。');
                    checkArr[i] = 0;
                    return;
                } else if (!/^\w{3,16}$/.test(clval)) {
                    $msg(info, 0, '会员登录名只能由英文字母及数字组成。');
                    checkArr[i] = 0;
                    return;
                } else {
                    $ajax({
                        url: 'checkLogName.ashx',
                        data: { mlogin: _self.value },
                        success: function (r) {
                            switch (r) {
                                case 'isnull':
                                    $msg(info, 0, '请填写您的会员登录名。');
                                    checkArr[i] = 0;
                                    break;
                                case 'tooless':
                                    $msg(info, 0, '会员登录名最少3个字符，最多16个字符。');
                                    checkArr[i] = 0;
                                    break;
                                case 'ischinese':
                                    $msg(info, 0, '会员登录名只能由英文字母及数字组成。');
                                    checkArr[i] = 0;
                                    break;
                                case 'hasbeenres':
                                    $msg(info, 0, '已经有人用了，再换一个吧。');
                                    checkArr[i] = 0;
                                    break;
                                case 'candonext':
                                    $msg(info, 1, '恭喜！该用户名可以顺利的注册。');
                                    checkArr[i] = 1;
                                    break;
                            }
                        },
                        fail: function (n) {
                            info.innerHTML = '检测用户名失败，请重新填写。';
                            checkArr[i] = 0;
                        }
                    });
                }
                // 显示名称	
            } else if (i == 1) {
                if (!clval) {
                    $msg(info, 0, '请填写您的显示名称。');
                    checkArr[i] = 0;
                    return;
                } else if (clval != clval.replace(/[^\u4E00-\u9FA5]/g, '')) {
                    $msg(info, 0, '请输入您的中文显示名称。');
                    checkArr[i] = 0;
                    return;
                }
                else if (clval.replace(/[\u4E00-\u9FA5]/g, 'aa').length < 4 || clval.replace(/[\u4E00-\u9FA5]/g, 'aa').length > 14) {
                    $msg(info, 0, '显示名称的合法长度是2-6位中文字。');
                    checkArr[i] = 0;
                    return;
                } else {
                    $msg(info, 1, '显示名称格式正确。');
                    checkArr[i] = 1;
                    return;
                }
                // 密码确认
            } else if (i == 2) {
                if (!clval) {
                    $msg(info, 0, '请填写您的登录密码。');
                    checkArr[i] = 0;
                    return;
                } else if (clval.length < 4 || clval.length > 14) {
                    $msg(info, 0, '登录密码的合法长度是4-14位。');
                    checkArr[i] = 0;
                    return;
                } else {
                    $msg(info, 1, '密码格式正确。');
                    checkArr[i] = 1;
                    return;
                }
                // 密码确认
            } else if (i == 3) {
                if (!clval) {
                    $msg(info, 0, '请确认密码。');
                    checkArr[i] = 0;
                    return;
                } else if (clval != $trim(inputs[i - 1].value)) {
                    $msg(info, 0, '两次输入的密码不一致。');
                    checkArr[i] = 0;
                    return;
                } else {
                    $msg(info, 1, '密码确认正确。');
                    checkArr[i] = 1;
                    return;
                }
                // email格式
            } else if (i == 4) {
                if (!clval) {
                    $msg(info, 0, '请输入email地址。');
                    checkArr[i] = 0;
                    return;
                } else if (/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/.test(clval)) {
                    $msg(info, 1, 'email地址正确。');
                    checkArr[i] = 1;
                } else {
                    $msg(info, 0, '请输入正确的email地址。');
                    checkArr[i] = 0;
                }
            } else if (i == 5) {
                if (!clval) {
                    $msg(info, 0, '请输入手机号。');
                    checkArr[i] = 0;
                    return;
                } else if (/^[\d-]{7,20}$/.test(clval)) {
                    $msg(info, 1, '手机号输入正确。');
                    checkArr[i] = 1;
                    return;
                } else {
                    $msg(info, 0, '手机号只能由7-20位数字和"-"组成。');
                    checkArr[i] = 0;
                    return;
                }
                // 交易密码
            } else if (i == 6) {
                if (!clval) {
                    checkArr[i] = 0;
                    return;
                } else if (clval.length = 4) {
                    checkArr[i] = 1;
                    return;
                } else {
                    checkArr[i] = 0;
                    return;
                }
            }
        }
    });
    //    getrnd()
}
function getrnd() {
    document.frm1.getElementsByTagName('img')[1].src = "/include/randomimg.asp?logintype=1&m=" + Math.random();
}
function zcheckreg() {
    var info = [
		'用户名',
        '显示名称',
		'登录密码',
		'登录密码确认',
		'Email',
		'手机号码'
		//,'验证码'
	],
	inputs = document.getElementById('content').getElementsByTagName('input');
    for (var i = 0, j = checkArr.length; i < j; i++) {
        if (!checkArr[i]) {
            if (!$trim(inputs[i].value)) {
                alert(info[i] + '不能为空。');
            } else {
                alert(info[i] + '没有填写正确。');
            }
            inputs[i].focus();
            return false;
        }
    }
    if (document.getElementById('dlSchool').value == '') {
        alert('请选择您所在的学校。');
        return false;
    }
    if (!document.getElementById('agreethis').checked) {
        alert('您必须已阅读并同意会员协议才可以注册。');
        return false;
    }
    return true;
}


